// module.exports 的导出方式
// 多次挂载，多次导出，例如
module.exports.a = [1,2,3];                     // module.exports 指向 this
module.exports.b = 'module.exports.b';          // module.exports 指向保持不变

// exports 的导出方式
exports.a = 4;                                  // exports 也是指向 this 的，此处的数字 4 将会覆盖前面的 [1,2,3]
exports.d = 'exports.d';                        // exports 指向保持不变

// 直接挂载 this 的导出方式e
this.date=[2019, 3, 24]                         // Export Array OK
this.email={email: 'zhaiduting@163.com'}        // Export Object OK
this.f=function(f){return f}                    // Export Function OK
this.af=(a, f)=>a+f                             // Export Arrow Function OK

// 另类怪异的导出写法
Object.assign(arguments[0].exports, {
    foo: 'foo',                                 // Export String OK
    bar:(msg)=>msg,                             // Export Arrow Function OK
})

